The present disclosure relates to systems and methods for executing web services. It finds particular application in conjunction with web services used for the design and production of a document such as a brochure and a poster, and will be described with particular reference thereto. However, it is to be appreciated that the present exemplary embodiments are also amenable to other like applications.
For a web service user, it can be very labor-intensive and tedious to manually complete multiple projects of similar nature using same web services. For example, a user's daily job may be the design and production of brochures using texts from one web service such as Google Docs, and pictures from another web service such as Flickr®. The user may have to go through a tedious process, as illustrated in FIG. 1, on a daily basis. With reference to FIG. 1, the user might for example
open 105 a first web service, such as a brochure design service;
pass 110 security requirements associated with the first web service, such as entering username and password to log on the brochure design service;
use 115 the first web service, such as selecting a brochure template;
open 120 a second web service, such as Flickr®;
pass 125 security requirements associated with the second web service, such as entering username and password to log on Flickr®;
use 130 the second web service, such as finding and selecting a picture from Flickr®;
open 135 a third web service such as Google Docs;
pass 140 security requirements associated with the third web service, such as entering username and password to log on Google Docs;
use 145 the third web service, such as fetching a text file from Google Docs;
request 150 the generation of a final product, for example, the generation of a brochure including the selected picture from Flickr® and the text from Google Docs on the selected brochure template;
review 155 the generated final product, for example, the user may review or proof-read the generated brochure; and
request 160 an output of the final product to be executed, for example, printing the brochure on paper. In doing so, the user may need to select an output mode, and enter parameters for the output mode, for example, to select a brochure printing service, and specifies the brochure printing options.
After the brochure on paper is printed on paper, the user may start to work on one or more new brochures. However, the user's tasks are very repetitive, since the difference between one brochure and another may be, for example, only the selection of a different text file and a different picture. Therefore, it is desirable for the web service user to automate such repetitive tasks by organizing them into workflows and automate workflow execution.
Nevertheless, this goal is not easily achievable, because such automation often involves complicated composition and execution of web services. For example, the first approach is to use a programming language and directly compose or program the services. But this approach requires significant programming knowledge and skill. Therefore users without intensive programming experience are not able to adopt this approach. The second approach is Graphical User Interface (GUI) based composition, through which users can drag and drop visual representations of services, and draw lines to connect them. However, this approach cannot process services with user interfaces. For example, some servers may use Business Process Execution Language (BPEL) to compose services based on Web Service Definition Language (WSDL), while other servers may use Enterprise Mashup Markup Language (EMML) to compose services based on their programmable interfaces, e.g. Representational State Transfer (REST), Simple Object Access Protocol (SOAP), and Really Simple Syndication (RSS). As all the drag-and-drop tools require services to have programmable interfaces, the user interfaces are not preserved in composing a service. The third approach allows users to define service composition in a scripting language, for example, Google Apps Script, which is comparable to the first approach, but uses Java script. Nevertheless, this approach still requires that the users have a certain level of programming knowledge and skill. As such, it is also difficult for users without much programming experience to adopt the third approach.
The subject embodiments solve these problems by providing systems and methods for executing two or more web services, at least one of which is secured. As illustrated by the following exemplary embodiments, the method is user friendly; highly customizable; and safe with respect to document retrieval and submission.